home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 676-700 / 681 / term / source.lha / PathPanel.c < prev    next >
C/C++ Source or Header  |  1992-05-09  |  16KB  |  482 lines

  1. /*
  2. **    $Id: PathPanel.c,v 1.4 92/04/21 16:59:20 olsen Sta Locker: olsen $
  3. **    $Revision: 1.4 $
  4. **    $Date: 92/04/21 16:59:20 $
  5. **
  6. **    Editing panel for path configuration
  7. **
  8. **    Copyright © 1990-1992 by Olaf `Olsen' Barthel & MXM
  9. **        All Rights Reserved
  10. */
  11.  
  12. #include "termGlobal.h"
  13.  
  14. enum    {    GAD_CONFIGSTORE,GAD_SELECT1,GAD_TUPLOAD,GAD_SELECT2,GAD_TDOWNLOAD,
  15.         GAD_SELECT3,GAD_AUPLOAD,GAD_SELECT4,GAD_ADOWNLOAD,GAD_SELECT5,
  16.         GAD_BUPLOAD,GAD_SELECT6,GAD_BDOWNLOAD,GAD_SELECT7,GAD_CAPTURE,
  17.         GAD_SELECT8,GAD_LOG,GAD_SELECT9,GAD_EDITOR,GAD_SELECT10,GAD_BEEP,
  18.         GAD_SELECT11,GAD_USE,GAD_CANCEL };
  19.  
  20. #define WIDTH    630
  21. #define HEIGHT    192
  22.  
  23. STATIC UBYTE *SelectText[] =
  24. {
  25.     NULL,
  26.     NULL,
  27.     NULL,
  28.     NULL,
  29.     NULL,
  30.     NULL,
  31.     NULL,
  32.     NULL,
  33.     NULL,
  34.     NULL,
  35.     NULL
  36. };
  37.  
  38. STATIC struct Gadget *
  39. CreateAllGadgets(struct Configuration *Config,struct Gadget *GadgetArray[],struct Gadget **GadgetList,APTR VisualInfo,UWORD TopEdge)
  40. {
  41.     struct Gadget        *Gadget;
  42.     struct NewGadget     NewGadget;
  43.     UWORD             Counter = 0;
  44.  
  45.     LocalizeString(SelectText,MSG_PATHPANEL_SELECT_CONFIG_STORAGE_DIR_TXT,MSG_PATHPANEL_SELECT_TERMINAL_BEEP_SOUND_TXT);
  46.  
  47.     memset(&NewGadget,0,sizeof(struct NewGadget));
  48.  
  49.     if(Gadget = CreateContext(GadgetList))
  50.     {
  51.         NewGadget . ng_Width        = 264;
  52.         NewGadget . ng_Height        = 14;
  53.         NewGadget . ng_GadgetText    = LocaleString(MSG_PATHPANEL_CONFIGURATION_STORAGE_DIR_GAD);
  54.         NewGadget . ng_TextAttr        = &DefaultFont;
  55.         NewGadget . ng_VisualInfo    = VisualInfo;
  56.         NewGadget . ng_GadgetID        = Counter;
  57.         NewGadget . ng_Flags        = 0;
  58.         NewGadget . ng_LeftEdge        = 266;
  59.         NewGadget . ng_TopEdge        = 1 + TopEdge;
  60.  
  61.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  62.             GT_Underscore,    '_',
  63.             GTST_MaxChars,    255,
  64.             GTST_String,    Config -> DefaultStorage,
  65.             GTST_EditHook,    &CommandHook,
  66.             GA_Immediate,    TRUE,
  67.         TAG_DONE);
  68.  
  69.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_SELECT_TXT);
  70.         NewGadget . ng_GadgetID        = Counter;
  71.         NewGadget . ng_LeftEdge        = NewGadget . ng_LeftEdge + NewGadget . ng_Width + 2;
  72.         NewGadget . ng_Width        = 88;    /* NEW 52 */
  73.  
  74.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  75.             TAG_DONE);
  76.  
  77.         NewGadget . ng_GadgetText    = LocaleString(MSG_PATHPANEL_DEFAULT_TEXT_UPLOAD_PATH_GAD);
  78.         NewGadget . ng_Width        = 264;
  79.         NewGadget . ng_GadgetID        = Counter;
  80.         NewGadget . ng_LeftEdge        = 266;
  81.         NewGadget . ng_TopEdge        = NewGadget . ng_TopEdge + NewGadget . ng_Height + 1;
  82.  
  83.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  84.             GT_Underscore,    '_',
  85.             GTST_MaxChars,    255,
  86.             GTST_String,    Config -> TextUploadPath,
  87.             GTST_EditHook,    &CommandHook,
  88.             GA_Immediate,    TRUE,
  89.         TAG_DONE);
  90.  
  91.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_SELECT_TXT);
  92.         NewGadget . ng_GadgetID        = Counter;
  93.         NewGadget . ng_LeftEdge        = NewGadget . ng_LeftEdge + NewGadget . ng_Width + 2;
  94.         NewGadget . ng_Width        = 88;    /* NEW 52 */
  95.  
  96.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  97.             TAG_DONE);
  98.  
  99.         NewGadget . ng_GadgetText    = LocaleString(MSG_PATHPANEL_DEFAULT_TEXT_DOWNLOAD_PATH_GAD);
  100.         NewGadget . ng_Width        = 264;
  101.         NewGadget . ng_GadgetID        = Counter;
  102.         NewGadget . ng_LeftEdge        = 266;
  103.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height;
  104.  
  105.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  106.             GT_Underscore,    '_',
  107.             GTST_MaxChars,    255,
  108.             GTST_String,    Config -> TextDownloadPath,
  109.             GTST_EditHook,    &CommandHook,
  110.             GA_Immediate,    TRUE,
  111.         TAG_DONE);
  112.  
  113.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_SELECT_TXT);
  114.         NewGadget . ng_GadgetID        = Counter;
  115.         NewGadget . ng_LeftEdge        = NewGadget . ng_LeftEdge + NewGadget . ng_Width + 2;
  116.         NewGadget . ng_Width        = 88;    /* NEW 52 */
  117.  
  118.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  119.             TAG_DONE);
  120.  
  121.         NewGadget . ng_GadgetText    = LocaleString(MSG_PATHPANEL_DEFAULT_ASCII_UPLOAD_PATH_GAD);
  122.         NewGadget . ng_Width        = 264;
  123.         NewGadget . ng_GadgetID        = Counter;
  124.         NewGadget . ng_LeftEdge        = 266;
  125.         NewGadget . ng_TopEdge        = NewGadget . ng_TopEdge + NewGadget . ng_Height + 1;
  126.  
  127.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  128.             GT_Underscore,    '_',
  129.             GTST_MaxChars,    255,
  130.             GTST_String,    Config -> ASCIIUploadPath,
  131.             GTST_EditHook,    &CommandHook,
  132.             GA_Immediate,    TRUE,
  133.         TAG_DONE);
  134.  
  135.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_SELECT_TXT);
  136.         NewGadget . ng_GadgetID        = Counter;
  137.         NewGadget . ng_LeftEdge        = NewGadget . ng_LeftEdge + NewGadget . ng_Width + 2;
  138.         NewGadget . ng_Width        = 88;    /* NEW 52 */
  139.  
  140.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  141.             TAG_DONE);
  142.  
  143.         NewGadget . ng_GadgetText    = LocaleString(MSG_PATHPANEL_DEFAULT_ASCII_DOWNLOAD_PATH_GAD);
  144.         NewGadget . ng_Width        = 264;
  145.         NewGadget . ng_GadgetID        = Counter;
  146.         NewGadget . ng_LeftEdge        = 266;
  147.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height;
  148.  
  149.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  150.             GT_Underscore,    '_',
  151.             GTST_MaxChars,    255,
  152.             GTST_String,    Config -> ASCIIDownloadPath,
  153.             GTST_EditHook,    &CommandHook,
  154.             GA_Immediate,    TRUE,
  155.         TAG_DONE);
  156.  
  157.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_SELECT_TXT);
  158.         NewGadget . ng_GadgetID        = Counter;
  159.         NewGadget . ng_LeftEdge        = NewGadget . ng_LeftEdge + NewGadget . ng_Width + 2;
  160.         NewGadget . ng_Width        = 88;    /* NEW 52 */
  161.  
  162.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  163.             TAG_DONE);
  164.  
  165.         NewGadget . ng_GadgetText    = LocaleString(MSG_PATHPANEL_DEFAULT_BINARY_UPLOAD_PATH_GAD);
  166.         NewGadget . ng_Width        = 264;
  167.         NewGadget . ng_GadgetID        = Counter;
  168.         NewGadget . ng_LeftEdge        = 266;
  169.         NewGadget . ng_TopEdge        = NewGadget . ng_TopEdge + NewGadget . ng_Height + 1;
  170.  
  171.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  172.             GT_Underscore,    '_',
  173.             GTST_MaxChars,    255,
  174.             GTST_String,    Config -> BinaryUploadPath,
  175.             GTST_EditHook,    &CommandHook,
  176.             GA_Immediate,    TRUE,
  177.         TAG_DONE);
  178.  
  179.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_SELECT_TXT);
  180.         NewGadget . ng_GadgetID        = Counter;
  181.         NewGadget . ng_LeftEdge        = NewGadget . ng_LeftEdge + NewGadget . ng_Width + 2;
  182.         NewGadget . ng_Width        = 88;    /* NEW 52 */
  183.  
  184.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  185.             TAG_DONE);
  186.  
  187.         NewGadget . ng_GadgetText    = LocaleString(MSG_PATHPANEL_DEFAULT_BINARY_DOWNLOAD_PATH_GAD);
  188.         NewGadget . ng_Width        = 264;
  189.         NewGadget . ng_GadgetID        = Counter;
  190.         NewGadget . ng_LeftEdge        = 266;
  191.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height;
  192.  
  193.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  194.             GT_Underscore,    '_',
  195.             GTST_MaxChars,    255,
  196.             GTST_String,    Config -> BinaryDownloadPath,
  197.             GTST_EditHook,    &CommandHook,
  198.             GA_Immediate,    TRUE,
  199.         TAG_DONE);
  200.  
  201.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_SELECT_TXT);
  202.         NewGadget . ng_GadgetID        = Counter;
  203.         NewGadget . ng_LeftEdge        = NewGadget . ng_LeftEdge + NewGadget . ng_Width + 2;
  204.         NewGadget . ng_Width        = 88;    /* NEW 52 */
  205.  
  206.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  207.             TAG_DONE);
  208.  
  209.         NewGadget . ng_GadgetText    = LocaleString(MSG_PATHPANEL_DEFAULT_CAPTURE_PATH_GAD);
  210.         NewGadget . ng_Width        = 264;
  211.         NewGadget . ng_GadgetID        = Counter;
  212.         NewGadget . ng_LeftEdge        = 266;
  213.         NewGadget . ng_TopEdge        = NewGadget . ng_TopEdge + NewGadget . ng_Height + 1;
  214.  
  215.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  216.             GT_Underscore,    '_',
  217.             GTST_MaxChars,    255,
  218.             GTST_String,    Config -> CapturePath,
  219.             GTST_EditHook,    &CommandHook,
  220.             GA_Immediate,    TRUE,
  221.         TAG_DONE);
  222.  
  223.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_SELECT_TXT);
  224.         NewGadget . ng_GadgetID        = Counter;
  225.         NewGadget . ng_LeftEdge        = NewGadget . ng_LeftEdge + NewGadget . ng_Width + 2;
  226.         NewGadget . ng_Width        = 88;    /* NEW 52 */
  227.  
  228.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  229.             TAG_DONE);
  230.  
  231.         NewGadget . ng_GadgetText    = LocaleString(MSG_PATHPANEL_DEFAULT_LOG_FILE_GAD);
  232.         NewGadget . ng_Width        = 264;
  233.         NewGadget . ng_GadgetID        = Counter;
  234.         NewGadget . ng_LeftEdge        = 266;
  235.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height + 1;
  236.  
  237.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  238.             GT_Underscore,    '_',
  239.             GTST_MaxChars,    255,
  240.             GTST_String,    Config -> LogFile,
  241.             GTST_EditHook,    &CommandHook,
  242.             GA_Immediate,    TRUE,
  243.         TAG_DONE);
  244.  
  245.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_SELECT_TXT);
  246.         NewGadget . ng_GadgetID        = Counter;
  247.         NewGadget . ng_LeftEdge        = NewGadget . ng_LeftEdge + NewGadget . ng_Width + 2;
  248.         NewGadget . ng_Width        = 88;    /* NEW 52 */
  249.  
  250.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  251.             TAG_DONE);
  252.  
  253.         NewGadget . ng_GadgetText    = LocaleString(MSG_PATHPANEL_DEFAULT_TEXT_EDITOR_GAD);
  254.         NewGadget . ng_Width        = 264;
  255.         NewGadget . ng_GadgetID        = Counter;
  256.         NewGadget . ng_LeftEdge        = 266;
  257.         NewGadget . ng_TopEdge        = Gadget -> TopEdge + Gadget -> Height + 1;
  258.  
  259.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  260.             GT_Underscore,    '_',
  261.             GTST_MaxChars,    255,
  262.             GTST_String,    Config -> Editor,
  263.             GTST_EditHook,    &CommandHook,
  264.             GA_Immediate,    TRUE,
  265.         TAG_DONE);
  266.  
  267.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_SELECT_TXT);
  268.         NewGadget . ng_GadgetID        = Counter;
  269.         NewGadget . ng_LeftEdge        = NewGadget . ng_LeftEdge + NewGadget . ng_Width + 2;
  270.         NewGadget . ng_Width        = 88;    /* NEW 52 */
  271.  
  272.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  273.             TAG_DONE);
  274.  
  275.         NewGadget . ng_GadgetText    = LocaleString(MSG_PATHPANEL_TERMINAL_BEEP_SOUND_GAD);
  276.         NewGadget . ng_Width        = 264;
  277.         NewGadget . ng_GadgetID        = Counter;
  278.         NewGadget . ng_LeftEdge        = 266;
  279.         NewGadget . ng_TopEdge        = NewGadget . ng_TopEdge + NewGadget . ng_Height + 1;
  280.  
  281.         GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
  282.             GT_Underscore,    '_',
  283.             GTST_MaxChars,    255,
  284.             GTST_String,    Config -> BeepSound,
  285.             GTST_EditHook,    &CommandHook,
  286.             GA_Immediate,    TRUE,
  287.         TAG_DONE);
  288.  
  289.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_SELECT_TXT);
  290.         NewGadget . ng_GadgetID        = Counter;
  291.         NewGadget . ng_LeftEdge        = NewGadget . ng_LeftEdge + NewGadget . ng_Width + 2;
  292.         NewGadget . ng_Width        = 88;    /* NEW 52 */
  293.  
  294.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  295.             TAG_DONE);
  296.  
  297.         NewGadget . ng_Width        = 88;    /* NEW 52 */
  298.         NewGadget . ng_Height        = 12;
  299.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_USE_GAD);
  300.         NewGadget . ng_GadgetID        = Counter;
  301.         NewGadget . ng_Flags        = 0;
  302.         NewGadget . ng_LeftEdge        = 10;
  303.         NewGadget . ng_TopEdge        = HEIGHT - 3 - NewGadget . ng_Height;
  304.  
  305.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  306.             GT_Underscore,    '_',
  307.         TAG_DONE);
  308.  
  309.         NewGadget . ng_GadgetText    = LocaleString(MSG_GLOBAL_CANCEL_GAD);
  310.         NewGadget . ng_GadgetID        = Counter;
  311.         NewGadget . ng_LeftEdge        = WIDTH - 10 - NewGadget . ng_Width;
  312.  
  313.         GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
  314.             GT_Underscore,    '_',
  315.         TAG_DONE);
  316.     }
  317.  
  318.     return(Gadget);
  319. }
  320.  
  321. BYTE
  322. PathPanel(struct Configuration *Config)
  323. {
  324.     struct Window    *PanelWindow;
  325.     struct Gadget    *GadgetList = NULL;
  326.     struct Gadget    *GadgetArray[GAD_CANCEL + 1];
  327.  
  328.     CopyMem(Config,&PrivateConfig,sizeof(struct Configuration));
  329.  
  330.     if(CreateAllGadgets(Config,&GadgetArray[0],&GadgetList,VisualInfo,Screen -> WBorTop + Screen -> Font -> ta_YSize + 1))
  331.     {
  332.         if(PanelWindow = OpenWindowTags(NULL,
  333.             WA_Left,    (Screen -> Width - WIDTH) >> 1,
  334.             WA_Top,        (Screen -> Height - HEIGHT) >> 1,
  335.             WA_Width,    WIDTH,
  336.             WA_Height,    HEIGHT,
  337.  
  338.             WA_Activate,    TRUE,
  339.             WA_DragBar,    TRUE,
  340.             WA_DepthGadget,    TRUE,
  341.             WA_RMBTrap,    TRUE,
  342.             WA_DepthGadget,    TRUE,
  343.             WA_CloseGadget,    TRUE,
  344.             WA_CustomScreen,Screen,
  345.  
  346.             WA_IDCMP,    IDCMP_GADGETDOWN | IDCMP_ACTIVEWINDOW | IDCMP_CLOSEWINDOW | IDCMP_VANILLAKEY | BUTTONIDCMP | STRINGIDCMP,
  347.  
  348.             WA_Title,    LocaleString(MSG_PATHPANEL_PATH_PREFERENCES_TXT),
  349.         TAG_DONE))
  350.         {
  351.             struct IntuiMessage    *Massage;
  352.             ULONG             Class,Code;
  353.             struct Gadget        *Gadget;
  354.             BYTE             Terminated = FALSE;
  355.  
  356.             PushWindow(PanelWindow);
  357.  
  358.             AddGList(PanelWindow,GadgetList,(UWORD)-1,(UWORD)-1,NULL);
  359.             RefreshGList(GadgetList,PanelWindow,NULL,(UWORD)-1);
  360.             GT_RefreshWindow(PanelWindow,NULL);
  361.  
  362.             ActiveGadget = NULL;
  363.  
  364.             while(!Terminated)
  365.             {
  366.                 WaitPort(PanelWindow -> UserPort);
  367.  
  368.                 while(!Terminated && (Massage = (struct IntuiMessage *)GT_GetIMsg(PanelWindow -> UserPort)))
  369.                 {
  370.                     Class    = Massage -> Class;
  371.                     Code    = Massage -> Code;
  372.                     Gadget    = (struct Gadget *)Massage -> IAddress;
  373.  
  374.                     GT_ReplyIMsg(Massage);
  375.  
  376.                     if(Class == IDCMP_VANILLAKEY)
  377.                         KeySelect(GadgetArray,GAD_CANCEL,Code,PanelWindow,&Gadget,&Class,&Code);
  378.  
  379.                     if(Class == IDCMP_ACTIVEWINDOW && ActiveGadget)
  380.                         ActivateGadget(ActiveGadget,PanelWindow,NULL);
  381.  
  382.                     if(Class == IDCMP_GADGETDOWN)
  383.                     {
  384.                         if((Gadget -> GadgetType & GTYP_GTYPEMASK) == GTYP_STRGADGET)
  385.                             ActiveGadget = Gadget;
  386.                     }
  387.  
  388.                     if(Class == IDCMP_CLOSEWINDOW)
  389.                         Terminated = TRUE;
  390.  
  391. GadCheck:                if(Class == IDCMP_GADGETUP)
  392.                     {
  393.                         switch(Gadget -> GadgetID)
  394.                         {
  395.                             case GAD_USE:        Terminated = TRUE;
  396.  
  397.                                         strcpy(Config -> DefaultStorage,    GT_STRING(GadgetArray[GAD_CONFIGSTORE]));
  398.  
  399.                                         strcpy(Config -> TextUploadPath,    GT_STRING(GadgetArray[GAD_TUPLOAD]));
  400.                                         strcpy(Config -> TextDownloadPath,    GT_STRING(GadgetArray[GAD_TDOWNLOAD]));
  401.  
  402.                                         strcpy(Config -> ASCIIUploadPath,    GT_STRING(GadgetArray[GAD_AUPLOAD]));
  403.                                         strcpy(Config -> ASCIIDownloadPath,    GT_STRING(GadgetArray[GAD_ADOWNLOAD]));
  404.  
  405.                                         strcpy(Config -> BinaryUploadPath,    GT_STRING(GadgetArray[GAD_BUPLOAD]));
  406.                                         strcpy(Config -> BinaryDownloadPath,    GT_STRING(GadgetArray[GAD_BDOWNLOAD]));
  407.  
  408.                                         strcpy(Config -> CapturePath,        GT_STRING(GadgetArray[GAD_CAPTURE]));
  409.                                         strcpy(Config -> LogFile,        GT_STRING(GadgetArray[GAD_LOG]));
  410.                                         strcpy(Config -> Editor,        GT_STRING(GadgetArray[GAD_EDITOR]));
  411.                                         strcpy(Config -> BeepSound,        GT_STRING(GadgetArray[GAD_BEEP]));
  412.  
  413.                                         break;
  414.  
  415.                             case GAD_CANCEL:    Terminated = TRUE;
  416.  
  417.                                         CopyMem(&PrivateConfig,Config,sizeof(struct Configuration));
  418.  
  419.                                         break;
  420.  
  421.                             default:                if(Gadget -> GadgetID & 1)
  422.                                         {
  423.                                             UBYTE DummyBuffer[256],*DummyChar;
  424.                                             struct FileRequester *FileRequest;
  425.                                             LONG Selection = (Gadget -> GadgetID - 1);
  426.  
  427.                                             BlockWindow(PanelWindow);
  428.  
  429.                                             strcpy(DummyBuffer,GT_STRING(GadgetArray[Selection]));
  430.  
  431.                                             if(Gadget -> GadgetID >= GAD_SELECT9)
  432.                                             {
  433.                                                 if(DummyBuffer[0])
  434.                                                 {
  435.                                                     if(FilePart(DummyBuffer) == DummyBuffer)
  436.                                                         DummyBuffer[0] = 0;
  437.                                                     else
  438.                                                     {
  439.                                                         DummyChar = PathPart(DummyBuffer);
  440.  
  441.                                                         *DummyChar = 0;
  442.                                                     }
  443.  
  444.                                                     DummyChar = FilePart(GT_STRING(GadgetArray[Selection]));
  445.                                                 }
  446.                                                 else
  447.                                                     DummyChar = "";
  448.                                             }
  449.                                             else
  450.                                                 DummyChar = "";
  451.  
  452.                                             if(FileRequest = GetFile(SelectText[Selection >> 1],DummyBuffer,DummyChar,DummyBuffer,NULL,FALSE,FALSE,(Selection >> 1) > 7 ? FALSE : TRUE,LocaleString(MSG_GLOBAL_SELECT_TXT)))
  453.                                             {
  454.                                                 GT_SetGadgetAttrs(GadgetArray[Selection],PanelWindow,NULL,
  455.                                                     GTST_String,(Gadget -> GadgetID < GAD_SELECT9 ? FileRequest -> rf_Dir : DummyBuffer),
  456.                                                 TAG_DONE);
  457.  
  458.                                                 FreeAslRequest(FileRequest);
  459.                                             }
  460.  
  461.                                             ReleaseWindow(PanelWindow);
  462.                                         }
  463.  
  464.                                         break;
  465.                         }
  466.                     }
  467.                 }
  468.             }
  469.  
  470.             RemoveGList(PanelWindow,GadgetList,(UWORD)-1);
  471.  
  472.             PopWindow();
  473.  
  474.             CloseWindow(PanelWindow);
  475.         }
  476.     }
  477.  
  478.     FreeGadgets(GadgetList);
  479.  
  480.     return((BYTE)Stricmp(Config -> BeepSound,PrivateConfig . BeepSound));
  481. }
  482.